home *** CD-ROM | disk | FTP | other *** search
/ Varios Español / Varios Español.iso / TRUESPC2 / SETUP.MST < prev    next >
Text File  |  1993-11-18  |  8KB  |  262 lines

  1. '**************************************************************************
  2. '*                       trueSpace2 Setup 1.0
  3. '**************************************************************************
  4.  
  5. '***'$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST APPHELP       = 900
  18. CONST BADPATH       = 6400
  19. CONST SMALLWIN      = 2200
  20. CONST RESTART       = 2600
  21. CONST RESTARTII     = 2700
  22. CONST PREP3DR        = 5000
  23. CONST POSRESTART    = 7100
  24.  
  25. ''Bitmap ID
  26. CONST LOGO = 1
  27.  
  28. GLOBAL SizeReq&  '' Total Disk Size required for installation
  29.  
  30. ''File Types
  31. GLOBAL WinDir$
  32. GLOBAL WinSysDir$
  33. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  34. GLOBAL DEST$        ''Default destination directory.
  35. GLOBAL HasMath%     ''has math coprocessor
  36. GLOBAL HasEMU%      ''math emulator already installed
  37.  
  38. DECLARE SUB Install
  39. DECLARE SUB EMUInstall
  40. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  41. DECLARE SUB Reboot LIB "iniupd.dll"
  42. DECLARE FUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  43. DECLARE FUNCTION WinExec LIB "Kernel" (Cmd$, State%) AS INTEGER
  44.  
  45. INIT:
  46.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  47.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  48.  
  49.     SetBitmap CUIDLL$, LOGO
  50.     SetTitle "Caligari trueSpace2"
  51.  
  52.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  53.     IF szInf$ = "" THEN
  54.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  55.     END IF
  56.  
  57.     ReadInfFile szInf$
  58.  
  59.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  60.     DEST$ = WINDRIVE$ + ":\truspace"
  61.  
  62. WELCOME:
  63.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  64.     IF sz$ = "CONTINUE" THEN
  65.         UIPop 1
  66.     ELSE
  67.         GOSUB ASKQUIT
  68.         GOTO WELCOME
  69.     END IF
  70.  
  71. GETPATH:
  72.     SetSymbolValue "EditTextIn", DEST$
  73.     SetSymbolValue "EditFocus", "END"
  74. GETPATHL1:
  75.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  76.     DEST$ = GetSymbolValue("EditTextOut")
  77.  
  78.     IF sz$ = "CONTINUE" THEN
  79.         IF IsDirWritable(DEST$) = 0 THEN
  80.             GOSUB BADPATH
  81.             GOTO GETPATHL1
  82.         END IF
  83.         UIPop 1
  84.     ELSEIF sz$ = "REACTIVATE" THEN
  85.         GOTO GETPATHL1
  86.     ELSEIF sz$ = "BACK" THEN
  87.         UIPop 1
  88.         GOTO WELCOME
  89.     ELSE
  90.         GOSUB ASKQUIT
  91.         GOTO GETPATH
  92.     END IF
  93.  
  94.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  95.     WinDir$ = GetWindowsDir()
  96.     WinSysDir$ = GetWindowsSysDir()
  97.     HasMath% = Has87MathChip()
  98.  
  99.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  100.     AddSectionFilesToCopyList "OBJECTS", SrcDir$, DEST$ + "\OBJECTS"
  101.     AddSectionFilesToCopyList "SCENES", SrcDir$, DEST$ + "\SCENES"
  102.     AddSectionFilesToCopyList "BUMPS", SrcDir$, DEST$ + "\BUMPS"
  103.     AddSectionFilesToCopyList "TEXTURES", SrcDir$, DEST$ + "\TEXTURES"
  104.     AddSectionFilesToCopyList "ENVIRMNT", SrcDir$, DEST$ + "\ENVIRMNT"
  105.     AddSectionFilesToCopyList "PROCSETS", SrcDir$, DEST$ + "\PROCSETS"
  106.     AddSectionFilesToCopyList "PLUGINS", SrcDir$, DEST$ + "\PLUGINS"
  107.     AddSectionFilesToCopyList "VBRUN", SrcDir$, WinDir$
  108.  
  109.     IF HasMath% < 1 THEN
  110.         AddSectionFilesToCopyList "Emulator", SrcDir$, WinSysDir$
  111.     END IF
  112.  
  113. ''  Check windrive diskspace
  114.     SizeReq& = GetCopyListCost ("","", "")
  115.     IF SizeReq& <> 0 THEN
  116.         GOSUB SMALLWIN
  117.         END
  118.     END IF
  119.  
  120.     Install
  121.  
  122. ''  If no emulator installed then no need to restart windows
  123.     IF HasMath%  > 0 THEN
  124.         GOTO QUIT
  125.     ENDIF
  126.  
  127.     sz$ = UIStartDlg(cuidll$, POSRESTART, "FInfo0DlgProc", 0, "")
  128.     UIPop 1
  129.  
  130. QUIT:
  131.     ON ERROR GOTO ERRQUIT
  132.  
  133.     IF ERR = 0 THEN
  134.         dlg% = EXITSUCCESS
  135.     ELSEIF ERR = STFQUIT THEN
  136.         dlg% = EXITQUIT
  137.     ELSE
  138.         dlg% = EXITFAILURE
  139.     END IF
  140. QUITL1:
  141.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  142.     IF sz$ = "REACTIVATE" THEN
  143.         GOTO QUITL1
  144.     END IF
  145.     UIPop 1
  146.  
  147.     Prog$ = SrcDir$ + "install.exe WIN32S"
  148.     Sta% = 3
  149.  
  150.     J% = WinExec (Prog$, Sta%)
  151.     END
  152.  
  153. ERRQUIT:
  154.     i% = DoMsgBox("An installation problem occured, please call Caligari Technical Support.", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  155.     END
  156.  
  157. ASKQUIT:
  158.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  159.  
  160.     IF sz$ = "EXIT" THEN
  161.         UIPopAll
  162. ''        ERROR STFQUIT
  163.         END
  164.     ELSEIF sz$ = "REACTIVATE" THEN
  165.         GOTO ASKQUIT
  166.     ELSE
  167.         UIPop 1
  168.     END IF
  169.     RETURN
  170.  
  171. SMALLWIN:
  172.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  173.     IF sz$ = "REACTIVATE" THEN
  174.         GOTO SMALLWIN
  175.     END IF
  176.     UIPop 1
  177.     RETURN
  178.  
  179. BADPATH:
  180.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  181.     IF sz$ = "REACTIVATE" THEN
  182.         GOTO BADPATH
  183.     END IF
  184.     UIPop 1
  185.     RETURN
  186.  
  187. '**
  188. '** Purpose:
  189. '**     performs all installation operations.
  190. '** Arguments:
  191. '**     none.
  192. '** Returns:
  193. '**     none.
  194. '*************************************************************************
  195. SUB Install STATIC
  196.  
  197.     CreateDir DEST$, cmoNone
  198.  
  199.     CopyFilesInCopyList
  200.  
  201.     IF HasMath% < 1 THEN
  202.         EMUInstall
  203.     END IF
  204.  
  205.     CreateIniKeyValue "WIN.INI", "Extensions", "tsd", DEST$ + "\TRUESPAC.EXE ^.tsd", cmoOverwrite
  206.     CreateProgmanGroup "trueSpace", "", cmoNone
  207.     ShowProgmanGroup  "trueSpace", 1, cmoNone
  208.     CreateProgmanItem "trueSpace", "trueSpace2", MakePath(DEST$,"truespac.exe"), "", cmoOverwrite
  209.     CreateProgmanItem "trueSpace", "Readme2", MakePath(DEST$,"readme20.wri"), "", cmoOverwrite
  210.     CreateProgmanItem "trueSpace", "Self-running Demo 1024x768", MakePath(DEST$,"dems1024.tsd"), "", cmoOverwrite
  211.     CreateProgmanItem "trueSpace", "Self-running Demo 800x600", MakePath(DEST$,"dems800.tsd"), "", cmoOverwrite
  212.     CreateProgmanItem "trueSpace", "QuickStart Demo 1024x768", MakePath(DEST$,"quicsta1.tsd"), "", cmoOverwrite
  213.     CreateProgmanItem "trueSpace", "QuickStart Demo 800x600", MakePath(DEST$,"quicsta8.tsd"), "", cmoOverwrite
  214.     CreateProgmanItem "trueSpace", "Shuttle 1024x768", MakePath(DEST$,"shtl1024.tsd"), "", cmoOverwrite
  215.     CreateProgmanItem "trueSpace", "Shuttle 800x600", MakePath(DEST$,"shtle800.tsd"), "", cmoOverwrite
  216.     CreateProgmanItem "trueSpace", "Fish 1024x768", MakePath(DEST$,"fish1.tsd"), "", cmoOverwrite
  217.     CreateProgmanItem "trueSpace", "Fish 800x600", MakePath(DEST$,"fish8.tsd"), "", cmoOverwrite
  218.     CreateProgmanItem "trueSpace", "trueSpace2 Help", "winhelp.exe " + MakePath(DEST$,"truespac.hlp"), "", cmoOverwrite
  219.     CreateProgmanItem "trueSpace", "KPT 2.0 Samples Help", "winhelp.exe " + MakePath(DEST$,"plugins\kpt20-sp.hlp"), "", cmoOverwrite
  220.  
  221. END SUB
  222.  
  223. '**
  224. '** Purpose:
  225. '**     install math emulator in system.ini file
  226. '** Arguments:
  227. '**     none.
  228. '** Returns:
  229. '**     none.
  230. '*************************************************************************
  231. SUB EMUInstall STATIC
  232.  
  233.     HasEMU% = DoesIniKeyExist("system.ini", "386Enh", "wemu")
  234.     IF HasEMU% < 1 THEN
  235.         CreateIniKeyValue WinDir$ + "system.ini", "386Enh", "wemu", "installed", cmoOverwrite
  236.         CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "wemu387.386", cmoOverwrite
  237.     END IF
  238.  
  239. END SUB
  240.  
  241. '**
  242. '** Purpose:
  243. '**     Appends a file name to the end of a directory path,
  244. '**     inserting a backslash character as needed.
  245. '** Arguments:
  246. '**     szDir$  - full directory path (with optional ending "\")
  247. '**     szFile$ - filename to append to directory
  248. '** Returns:
  249. '**     Resulting fully qualified path name.
  250. '*************************************************************************
  251. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  252.     IF szDir$ = "" THEN
  253.         MakePath = szFile$
  254.     ELSEIF szFile$ = "" THEN
  255.         MakePath = szDir$
  256.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  257.         MakePath = szDir$ + szFile$
  258.     ELSE
  259.         MakePath = szDir$ + "\" + szFile$
  260.     END IF
  261. END FUNCTION
  262.